Skip to content

redis 简介

Redis 是一款开源、高性能的内存型键值数据库,支持多种数据结构和持久化机制,核心定位是 “高速缓存 + 数据存储”。

核心特点

  1. 基于内存存储,读写延迟通常很低;QPS 与命令类型、网络、持久化配置强相关,基准测试需自行压测,不宜写死「十万 +」。
  2. 支持丰富数据结构,而非单一键值对。
  3. 提供持久化方案,避免内存数据丢失。
  4. 支持集群、主从复制,保障高可用和扩展性。
  5. 支持事务、Lua 脚本、发布订阅等高级功能。

核心优势

  1. 性能极致:内存操作 + IO 多路复用模型,延迟低至微秒级。
  2. 灵活易用:API 简洁,支持多种客户端(Java、Python、Go 等)。
  3. 功能全面:兼顾缓存、存储、消息队列等多种场景。
  4. 可扩展性强:支持主从复制、哨兵模式、Redis Cluster 集群。

核心数据结构(常用 5 种)

  1. String(字符串):最基础类型,可存储文本、数字,支持自增自减。
  2. Hash(哈希):适合存储对象(如用户信息),键值对的集合。
  3. List(列表):有序字符串集合,支持两端插入 / 删除,可实现队列 / 栈。
  4. Set(集合):无序不重复集合,支持交集、并集、差集运算。
  5. Sorted Set(有序集合):带分数的 Set,按分数排序,适合排行榜。

典型应用场景

  1. 缓存系统:减轻数据库压力(如商品详情、用户会话)。
  2. 计数器:点赞数、访问量、限流场景(利用 String 自增)。
  3. 消息队列:基于 List 的 LPUSH/RPOP 实现简单队列。
  4. 排行榜:Sorted Set 的分数排序特性(如游戏天梯、销量榜)。
  5. 分布式锁:利用 SET key value NX EX(不存在则设置并带过期)等实现互斥(生产需配合唯一 value、Lua 释放等)。

数据持久化机制

  1. RDB:定期将内存数据快照写入磁盘,恢复速度快,适合备份。
  2. AOF:记录每一条写命令,恢复时重放命令,数据完整性更高。
  3. 实际应用中常组合使用(RDB+AOF),平衡性能和可靠性。